"""
五边形数

  五边形数是由公式Pn=n(3n−1)/2生成。前10个五边形数是：
    1, 5, 12, 22, 35, 51, 70, 92, 117, 145, …
可以看出P4 + P7 = 22 + 70 = 92 = P8。然而，它们的差70 − 22 = 48并不是五边形数。
  在所有和差均为五边形数的五边形数对Pj和Pk中，找出使D = |Pk − Pj|最小的一对，此时D的值是。
"""

def five_edge(n):
    for i in range(1,n):
        if i*(3*n-1)/2==n:
            return True
        elif i*(3*n-1)/2>n:
            return False

an_set,i,af=set(),0,1
while af!=0:
    i+=1
    fan=int(i*(3*i-1)/2)
    an_set.add(fan)
    for an in an_set:
        if fan-an in an_set and five_edge(an+fan):
            print(fan, an, fan-an)
            af=0




# def an_pan(number):#判断是否为五边形数
#     if ((24*number+1)**0.5+1)%6==0:
#         return True
# an_set,i,af=set(),0,1
# while af!=0:
#     i+=1
#     fan=int(i*(3*i-1)/2)
#     an_set.add(fan)
#     for an in an_set:
#         if fan-an in an_set and an_pan(an+fan):
#             print(fan, an, fan-an)
#             af=0